import 'package:json_annotation/json_annotation.dart';
part 'product_detail_model.g.dart';


@JsonSerializable()
class ProductDetailModel extends Object {

  Item? item;

  List<dynamic>? desc_arr;

  List<Sku_list>? sku_list;

  List<Pic_list>? pic_list;

  Attr_list? attr_list;

  Rank_detail rank_detail;

  List<dynamic>? seckill_detail;

  List<Service_list>? service_list;

  List<String>? checked_value;

  int consultation_total;

  int errcode;

  String message;

  ProductDetailModel(this.item,this.desc_arr,this.sku_list,this.pic_list,this.attr_list,this.rank_detail,this.seckill_detail,this.service_list,this.checked_value,this.consultation_total,this.errcode,this.message,);

  factory ProductDetailModel.fromJson(Map<String, dynamic> srcJson) => _$ProductDetailModelFromJson(srcJson);

  Map<String, dynamic> toJson() => _$ProductDetailModelToJson(this);

}


@JsonSerializable()
class Item extends Object {

  String shop_name;

  int product_id;

  String product_name;

  String product_sn;

  String product_tsn;

  int product_stock;

  String product_price;

  String market_price;

  int shipping_tpl_id;

  int product_status;

  int product_type;

  int category_id;

  int brand_id;

  int shop_id;

  String keywords;

  int shop_category_id;

  int check_status;

  String check_reason;

  int click_count;

  String product_weight;

  int is_promote;

  int is_promote_activity;

  String promote_price;

  String promote_start_date;

  String promote_end_date;

  int seckill_max_num;

  String product_brief;

  String product_desc;

  String pic_url;

  String pic_thumb;

  String pic_original;

  int free_shipping;

  int integral;

  int add_time;

  int sort_order;

  int store_sort_order;

  int is_delete;

  int is_best;

  int is_new;

  int is_hot;

  int last_update;

  String remark;

  int give_integral;

  int rank_integral;

  int suppliers_id;

  int virtual_sales;

  int limit_number;

  String product_care;

  List<dynamic> product_related;

  List<int> product_service_ids;

  int is_support_return;

  int is_support_cod;

  String product_video;

  String prepay_price;

  int card_group_id;

  String virtual_sample;

  String paid_content;

  String? describe;

  int is_seckill;

  int is_buy;

  Item(this.shop_name,this.product_id,this.product_name,this.product_sn,this.product_tsn,this.product_stock,this.product_price,this.market_price,this.shipping_tpl_id,this.product_status,this.product_type,this.category_id,this.brand_id,this.shop_id,this.keywords,this.shop_category_id,this.check_status,this.check_reason,this.click_count,this.product_weight,this.is_promote,this.is_promote_activity,this.promote_price,this.promote_start_date,this.promote_end_date,this.seckill_max_num,this.product_brief,this.product_desc,this.pic_url,this.pic_thumb,this.pic_original,this.free_shipping,this.integral,this.add_time,this.sort_order,this.store_sort_order,this.is_delete,this.is_best,this.is_new,this.is_hot,this.last_update,this.remark,this.give_integral,this.rank_integral,this.suppliers_id,this.virtual_sales,this.limit_number,this.product_care,this.product_related,this.product_service_ids,this.is_support_return,this.is_support_cod,this.product_video,this.prepay_price,this.card_group_id,this.virtual_sample,this.paid_content,this.describe,this.is_seckill,this.is_buy,);

  factory Item.fromJson(Map<String, dynamic> srcJson) => _$ItemFromJson(srcJson);

  Map<String, dynamic> toJson() => _$ItemToJson(this);

}

// @CopyWith()
@JsonSerializable()
class Sku_list extends Object {

  int sku_id;

  int product_id;

  String sku_value;

  List<Sku_data> sku_data;

  String sku_sn;

  int sku_stock;

  String sku_tsn;

  String sku_price;

  Sku_list(this.sku_id,this.product_id,this.sku_value,this.sku_data,this.sku_sn,this.sku_stock,this.sku_tsn,this.sku_price,);

  factory Sku_list.fromJson(Map<String, dynamic> srcJson) => _$Sku_listFromJson(srcJson);

  Map<String, dynamic> toJson() => _$Sku_listToJson(this);

}


@JsonSerializable()
class Sku_data extends Object {

  String name;

  String value;

  Sku_data(this.name,this.value,);

  factory Sku_data.fromJson(Map<String, dynamic> srcJson) => _$Sku_dataFromJson(srcJson);

  Map<String, dynamic> toJson() => _$Sku_dataToJson(this);

}


@JsonSerializable()
class Pic_list extends Object {

  int pic_id;

  int product_id;

  String pic_url;

  String pic_desc;

  String pic_thumb;

  String pic_original;

  String pic_large;

  int sort_order;

  Pic_list(this.pic_id,this.product_id,this.pic_url,this.pic_desc,this.pic_thumb,this.pic_original,this.pic_large,this.sort_order,);

  factory Pic_list.fromJson(Map<String, dynamic> srcJson) => _$Pic_listFromJson(srcJson);

  Map<String, dynamic> toJson() => _$Pic_listToJson(this);

}


@JsonSerializable()
class Attr_list extends Object {

  List<Normal> normal;

  List<Spe> spe;

  List<Extra> extra;

  Attr_list(this.normal,this.spe,this.extra,);

  factory Attr_list.fromJson(Map<String, dynamic> srcJson) => _$Attr_listFromJson(srcJson);

  Map<String, dynamic> toJson() => _$Attr_listToJson(this);

}


@JsonSerializable()
class Normal extends Object {

  String attr_name;

  List<Attr_list_item> attr_list;

  Normal(this.attr_name,this.attr_list,);

  factory Normal.fromJson(Map<String, dynamic> srcJson) => _$NormalFromJson(srcJson);

  Map<String, dynamic> toJson() => _$NormalToJson(this);

}



@JsonSerializable()
class Spe extends Object {

  String attr_name;

  List<Attr_list_item> attr_list;

  Spe(this.attr_name,this.attr_list,);

  factory Spe.fromJson(Map<String, dynamic> srcJson) => _$SpeFromJson(srcJson);

  Map<String, dynamic> toJson() => _$SpeToJson(this);

}


@JsonSerializable()
class Attr_list_item extends Object {

  int attributes_id;

  int product_id;

  int attr_type;

  String attr_name;

  String attr_value;

  String attr_price;

  String attr_color;

  String attr_pic;

  String attr_pic_thumb;

  String attr_default;

  Attr_list_item(this.attributes_id,this.product_id,this.attr_type,this.attr_name,this.attr_value,this.attr_price,this.attr_color,this.attr_pic,this.attr_pic_thumb,this.attr_default,);

  factory Attr_list_item.fromJson(Map<String, dynamic> srcJson) => _$Attr_list_itemFromJson(srcJson);

  Map<String, dynamic> toJson() => _$Attr_list_itemToJson(this);

}


@JsonSerializable()
class Extra extends Object {

  String attr_name;

  List<Attr_list_item> attr_list;

  Extra(this.attr_name,this.attr_list,);

  factory Extra.fromJson(Map<String, dynamic> srcJson) => _$ExtraFromJson(srcJson);

  Map<String, dynamic> toJson() => _$ExtraToJson(this);

}


@JsonSerializable()
class Rank_detail extends Object {

  int total;

  int average_rank;

  int good_percent;

  Rank_detail(this.total,this.average_rank,this.good_percent,);

  factory Rank_detail.fromJson(Map<String, dynamic> srcJson) => _$Rank_detailFromJson(srcJson);

  Map<String, dynamic> toJson() => _$Rank_detailToJson(this);

}


@JsonSerializable()
class Service_list extends Object {

  int product_service_id;

  String product_service_name;

  String product_service_desc;

  String ico_img;

  int sort_order;

  int default_on;

  int shop_id;

  Service_list(this.product_service_id,this.product_service_name,this.product_service_desc,this.ico_img,this.sort_order,this.default_on,this.shop_id,);

  factory Service_list.fromJson(Map<String, dynamic> srcJson) => _$Service_listFromJson(srcJson);

  Map<String, dynamic> toJson() => _$Service_listToJson(this);

}


